package com.richfun.boot.common.dao;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.support.SqlSessionDaoSupport;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public class CommonDao<T> extends SqlSessionDaoSupport {

    @Autowired
    public CommonDao(SqlSessionFactory sqlSessionFactory) {
        super.setSqlSessionFactory(sqlSessionFactory);
    }

    /**
     * 查询 List 数据, 参数 Object
     */
    public List<T> list(String sqlId, Object params) {
        return getSqlSession().selectList(sqlId, params);
    }

    /**
     * 查询一条数据, 参数 Object
     */
    public T get(String sqlId, Object params) {
        return getSqlSession().selectOne(sqlId, params);
    }

    /**
     * 新增, 参数 Object
     */
    public void insert(String sqlId, Object params) {
        getSqlSession().insert(sqlId, params);
    }

    /**
     * 编辑, 参数 Object
     */
    public void update(String sqlId, Object params) {
        getSqlSession().update(sqlId, params);
    }

    /**
     * 删除, 参数 Object
     */
    public void delete(String sqlId, Object params) {
        getSqlSession().delete(sqlId, params);
    }
}
